怒超 GPT-4!LONGMEM:提升大语言模型(LLMs)长文本处理能力,最高可达64k
引言
对于长文本处理,大型语言模型(LLMs)仍然存在短板,即使目前最强GPT-4最多也就支持32k个Token。为了能够提升LLM长文本处理水平,今天大家介绍了一种名为LONGMEM的方法架构,该方法将长文本序列分块并利用存储器进行处理且无需对模型进行重训练,最高可支持64k个Token,有效的提高了模型长文本处理能力,相比GPT-4多了一倍。
Paper:https://arxiv.org/pdf/2306.07174v1.pdf
Code:https://github.com/Victorwz/LongMem
背景介绍
大型语言模型(LLM)已经在自然语言处理领域取得了革命性的进展,在各种理解和生成任务中取得了卓越的成就。大多数LLMs通过在大型语料库上进行自监督训练,从固定长度的局部上下文中获取知识,显示出了优秀能力,如Zero-shot Prompting,在上下文中学习和思维链(CoT)推理等。然而,「现有LLMs的上下文输入长度限制,阻止它们在长文本信息处理上的普及和应用」。
为了解决上下文文本长度限制问题,最简单的方法是扩展输入上下文长度。就比如OpenAI将GPT-3输入长度从GPT-2的1k提高到2k个Token。然而,这种方法通常需要重新对模型进行大量训练,并且上下文密集的注意力仍然「受到Transformer自注意力二次计算复杂度的限制」。最近的一条研究路线则专注于开发上下文稀疏注意力,以避免自我注意的二次成本,这仍然「需要重新对模型进行大量训练」。例如Memorizing Transformer(MemTRM),但由于其耦合的记忆设计,「MemTRM在训练过程中面临记忆更新的挑战」,该设计使用单个模型对记忆进行编码和融合,从而在模型参数更新时,内存中的旧缓存表示可能与最新模型的不同分布有偏差,从而限制了记忆增强的有效性。
为此,基于以上考虑,作者提出了「一种带有长期记忆的语言模型增强框架(LONGMEM)」 ,使语言模型能够将大量的上下文知识缓存到不可微分的内存库中,并通过解耦的记忆模块进一步利用它们来解决记忆过时问题。
LONGMEM
LONGMEM模型主要包括三个关键部分:「冻结参数的预训练语言模型」,「SideNet」和「Cache Memory Bank(记忆缓存库)」 。其中:LLM用于编码当前输入和之前输入的信息,记忆缓存库用于存储之前输入的关键信息,SideNet用于将当前输入和之前输入的信息进行融合,模型的训练目标是最大化左到右语言建模的似然。模型整体架构图如下所示:
「SideNet」 它是是基于Transformer的,并且通过减少层级数来实现轻量化,并利用预训练的参数进行初始化,在连续自适应阶段中冻结语言模型头层,同时通过交叉网络残差连接将来自骨干语言模型的知识传递到SideNet中。具体而言,通过将骨干语言模型第2l层和第2l-2层的隐藏状态之差作为残差连接添加到SideNet第l层的隐藏状态输出中,将来自骨干语言模型的表示与SideNet的表示相融合,从而提高模型的效果。
「检索和融合」 在检索过程中主要采用token-to-chunk检索,将记忆存储为不同大小的token块,以加速和保持完整性。而融合过程在特殊的记忆增强层中进行,使用多头自注意力机制和长期记忆融合机制,允许每个token同时关注本地上下文和检索到的记忆上下文。同时,作者还指出了超参数chunk-size对于检索准确性和任务表现的重要性。。
架构流程
「架构Pipeline」 利用冻结参数的骨干LLM从先前的上下文中提取成对的注意键和值,存储到记忆缓存库中。在SideNet的内存增强层中,当前输入产生的注意查询用于从内存中检索先前上下文(键,值)的缓存,并且通过联合注意机制将相应的内存增强融合到隐藏状态中。此外,SideNet和参数冻结的LLM之间新设计的跨网络残差连接使LLM能够更好地传递知识。通过不断训练残差SideNet以检索和融合内存增强的长上下文,预训练LLM可以适应利用长时上下文内存进行改进的建模。详细的内存缓存、检索和融合过程如下图所示。
实验结果:
作者评估了所提出的LONGMEM模型在各种长文本语言建模和以上下文为基础的语言理解记忆增强学习方面的有效性,相比其它基线模型都有很大的提高。如下表所示。
推荐阅读
[2]Goat-7B干翻GPT-4,超PaLM-540B!24G可训练
[4]Meta最新模型LIMA,没有RLHF远胜Alpaca!!
[6]LLMs与AutoGPT结合:揭示GPT-4惊人决策能力